package br.ufc.persistencia.DAO;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import br.ufc.persistencia.Util.HibernateUtil;
import br.ufc.persistencia.model.Municipio;

public class MunicipioDao {

	public void salvarMunicipio(Municipio Municipio) {
		Session session = HibernateUtil.getSession();
		Transaction t = session.beginTransaction();
		try {
			session.save(Municipio);
			t.commit();
		} catch (Exception e) {
			t.rollback();
		} finally {
			session.close();
		}
	}

	public Municipio carregarMunicipio(Long id) {
		Session session = HibernateUtil.getSession();
		try {
			return (Municipio) session.get(Municipio.class, id);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.close();
		}
		return null;
	}

	public void atualizarMunicipio(Municipio Municipio) {
		Session session = HibernateUtil.getSession();
		Transaction t = session.beginTransaction();
		try {
			session.update(Municipio);
			t.commit();
		} catch (Exception e) {
			e.printStackTrace();
			t.rollback();
		} finally {
			session.close();
		}
	}

	public void removerMunicipio(Municipio Municipio) {
		Session session = HibernateUtil.getSession();
		Transaction t = session.beginTransaction();
		try {
			session.delete(Municipio);
			t.commit();
		} catch (Exception e) {
			t.rollback();
		} finally {
			session.close();
		}
	}

	public List<Municipio> listaMunicipios() {
		Session session = HibernateUtil.getSession();
		try {
			return session.createCriteria(Municipio.class).list();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.close();
		}

		return null;
	}

}
